/*
 * @Descripttion: 
 * @Author: zhangchong zc16607@gmail.com
 * @Date: 2023-02-27 16:08:44
 * @LastEditors: zhangchong zc16607@gmail.com
 * @LastEditTime: 2023-03-02 14:54:35
 */
const path = require('path')

module.exports = {
  entry: path.resolve(__dirname, 'src/app.js'),
  // devtool: 'eval',  // 设置sourceMap的方式，生产环境不需要
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'app.js',
  },
  target: 'node',     // 设置打包的目标平台
  resolve: {
    extensions: [".ts", ".js"], // 允许webpack加载哪些文件
  },
  module: {
    rules: [
      { test: /\.ts$/, use: 'ts-loader', exclude: /node_modules/ },
      { test: /\.html$/i, loader: 'html-loader'}
    ]
  },
  externals: {
    // 项目中的外部依赖(node_modules)不打包进budle.js，转换为require引入
    // 如果直接打包进bundle.js文件，会出现Cannot find module "../lib/worker.js" 问题，暂时无解
    'express': 'commonjs2 express',
    'cors': 'commonjs2 cors',
    'compression': 'commonjs2 compression',
    'mongoose': 'commonjs2 mongoose',
    'pino': 'commonjs2 pino',
    'dayjs': 'commonjs2 dayjs',
    'bcrypt': 'commonjs2 bcrypt'
  },
}